import jwt3
import time


# 用于生成登录token的方法
def get_token(
        jwt_key,  # 用于加密的密钥
        expired: int = 60 * 60 * 3,  # 过期时间，默认3小时
        id=None,  # 用户ID
        username=None,  # 用户名
        roles=None,  # 用户角色
        menus=None,  # 用户的菜单
        auths=None,  # 用户的权限
):
    data = {
        "id": id,
        "username": username,
        "roles": roles,
        "menus": menus,
        "auths": auths,
        "exp": int(time.time()) + expired,  # 设置过期时间
    }
    return jwt3.encode(data, jwt_key, algorithm='HS256')


# 解析用户登录token的方法
def parse_token(jwt_key, token):
    data = None
    try:
        data = jwt3.decode(token, jwt_key, algorithms=["HS256"])
    except jwt3.ExpiredSignatureError:
        print("token 已过期")
    except Exception as e:
        print("解析Token失败")
    return data

